Integrated circuits are widely used in many electronic applications. A typical integrated circuit may include logic or processor portions along with one or more accessible memory portions on the same integrated circuit die. For example, an application specific integrated circuit ("ASIC") may include one or more random access memory ("RAM") blocks. The RAM blocks typically include arrays or memory cells arranged in rows and columns. A portion of the memory address selects one or more of the memory cells in the selected row and column for access, either for reading data or writing data to the addressed location.
Memory circuits such as RAMs are especially subject to having significant test costs not only because of the necessity of both writing data to and reading data from each of the bits in the memory, but also because RAMs are often subject to failures due to pattern sensitivity. Pattern sensitivity failures arise because the ability of a bit to retain its stored data state may depend upon the data states stored in, and the operations upon bits which are physically adjacent to a particular bit being tested. This causes the test item for RAMs to be not only linearly dependant upon its density (i.e., the number of bits available for storage) but, for some pattern sensitivity tests, dependant upon the square (or 3/2 power) of the number of bits. Accordingly, the density of RAM devices increases, generally by a factor of four from generation to generation. The time required to test each bit of each device in production increases at a rapid rate.
Since the RAM blocks may be embedded with other circuit portions, direct access to the memory blocks also can be very difficult for testing. Memory circuits are typically tested by addressing test patterns to the memory requiring multiple periods of vectors for each test cycle, and millions of test cycles are required to superficially access all bits.
A solution which has been used in the past to reduce the time and equipment required for the testing of memories, such as RAMs, is the use of special test modes, where the memory enters a special operation different from its normal operation. In such test modes, the operation of the memory can be quite different from that of normal operation, as the normal operation of internal testing can be done without being subject to the constraints of normal operation.
An example of a special test mode is an internal parallel or multi-bit test mode. Conventional parallel test modes allow access to more than one memory location in a single cycle, with common data written to and read from the multiple locations simultaneously. For memories which have multiple input/output terminals, multiple bits can be accessed in such a mode for each of the input/output terminals, in order to achieve the parallel operation. Such parallel testing is preferably done in such a way that the multiple bits accessed in each cycle are physically separated from one another so that there is little likelihood of pattern sensitivity integration among the simultaneously accessed bits. Some conventional parallel test operations may be done in different way, but these test operations often require extensive external equipment, e.g., automated test equipment, which often needs to be customized for particular operations. These parallel test operations also can continue to take extensive amounts of time to accomplish the testing results.
Another example of a parallel test operation can be seen in U.S. Pat. No. 5,265,100 by McClure et al. which describes a semiconductor memory with an improved test mode and a method of parallel testing a plurality of memory locations. This method involves selecting the plurality of memory locations, comparing the contents of the selected memory locations, and communicating the contents of a first one of the selected memory locations to an output buffer of the integrated circuit during the comparing step. The output buffer of the memory circuit is then disabled so as not to be able to present the communicated contents of the first memory locations responsive to the result of the comparing step indicating that the contents of the selected memory locations do not all match one another. This parallel test operation, however, can still take extensive amounts of time to accomplish the testing results. Because testing memory of an integrated circuit can continue to take hundreds or thousands of hours and the compaction of circuitry in the same small area continues to increase, these conventional methods and devices are becoming inadequate.